﻿#!/bin/bash
CURL=/sw/bin/curl

# Plik ze znanymi adresami stron —  po jednym adresie URL w wierszu.
URLFILE=pages.txt

# Deskryptor 3 oznacza plik z adresami URL.
3<"${URLFILE}"

typeset -i FAILED

// Dla każdego adresu URL z pliku URLFILE.
while read -u 3 URL
do
    FAILED=0
    # Wywołanie programu cURL w celu pobrania strony Pobranie nagłówków. Nas interesuje
    # pierwszy wiersz zawierający dane o statusie.
    RESPONSE=$(${CURL} -D - -s "${URL}" | head -1)
    OIFS="$IFS"
    set - ${RESPONSE}
    result=$2
    IFS="$OIFS"

    # Jeśli otrzymaliśmy status z serii 200, prawdopodobnie oznacza to niepowodzenie testu.
    if [ $result -lt 300 ]
    then
    echo "NIEPOWODZENIE:$result ${URL}"
    FAILED=${FAILED}+1
    else
    // Odpowiedź serii 300 oznacza przekierowanie. Należy sprawdzić ręcznie.
    if [ $result -lt 400 ]
    then
        echo "NALEŻY SPRAWDZIĆ:    $result ${URL}"
        FAILED=${FAILED}+1
    else
        # Odpowiedź serii 400 oznacza rodzaj odmowy.
        # Taka odpowiedź, ogólnie rzecz biorąc, oznacza sukces. 
        if [ $result -lt 500 ]
        then
        echo "SUKCES:    $result ${URL}"
        else
        # Odpowiedź serii 500 oznacza błąd serwera.
        # Wszystkie inne odpowiedzi do tej pory nieuwzględnione 
        # będą oznaczały niepowodzenie testu.
        echo "NIEPOWODZENIE: $result ${URL}"
        FAILED=${FAILED}+1
        fi
    fi
    fi
done
